package Euler52;

import java.util.*;
import ReusableCode.*;

public class PermutedMultiples {
	public static void main(String[] args) {
		
		System.out.println("Working...");
		
		long num = 10;
		while(true)
		{
			int digs[] = MathFunctions.getDigits(num);
			
			if(MathFunctions.numberOfDigits(num*6) > digs.length)
			{
				num = (int)Math.pow(10, digs.length);
			}
			else
			{
				for(int i = 2; i <= 6; i++)
				{
					long num2 = i * num;
					
					if(!sameDigits(digs, num2))
					{
						break;
					}
					else if(i==6)
					{
						System.out.println(num);
						return;
					}
				}
				num++;
			}
		}
	}
	
	static boolean sameDigits(int digs[], long num2)
	{
		HashSet<Integer> digits = MathFunctions.getDigitsHash(num2);
		
		if(digits.size()==digs.length){
			for(int i = 0; i < digs.length; i++)
			{
				if(!digits.contains(digs[i]))
				{
					return false;
				}
			}
		}
		else
		{
			return false;
		}
		
		return true;
	}
}